// 一开始不妨将所有零件安装在身体上，然后对于所有 Hi>Bi 的零件做 01 背包（价值为
// $H_i−B_i$)，
//  为了满足头部重量不超过身体重量，将背包容量设置为   $ 1/2 \sum W_i$

#include <bits/stdc++.h>
using namespace std;
const int N = 1e3 + 10;
const int inf = 1e9 + 10;
int w[N], h[N], b[N];
int f[N + 1][11000];

int main() {
  int n;
  cin >> n;
  int m = 0;
  for (int i = 1; i <= n; i++) {
    cin >> w[i] >> h[i] >> b[i];
    m += w[i];
  }

  for (int i = 1; i <= n; i++) {
    for (int j = 1; j <= m; j++) {
      f[i][j] = -inf;
    }
  }

  for (int i = 1; i <= n; i++) {
    for (int j = 0; j <= m; j++) {
      f[i][j] = f[i - 1][j] + b[i]; // 不选第i个零件作为头

      if (w[i] <= j) {
        f[i][j] = max(f[i][j], f[i - 1][j - w[i]] + h[i]); // 选第i个零件作为头
      }
    }
  }
  int ans = -inf;
  for (int j = 0; j <= m / 2; j++) {

    ans = max(ans, f[n][j]);
  }

  cout << ans << endl;
  return 0;
}